Решение уравнений и
систем уравнений.
Методы
решения нелинейных уравнений делятся на две группы:
Точные
методы позволяют записать корни в виде
некоторого конечного соотношения (формулы). Из школьного курса алгебры известны
такие методы для решения тригонометрических, логарифмических, показательных, а
также простейших алгебраических уравнений.
Как
известно, многие уравнения и системы уравнений не имеют аналитических решений.
В первую очередь это относится к большинству трансцендентных уравнений.
Доказано также, что нельзя построить формулу, по которой можно было бы решить
произвольное алгебраическое уравнение степени выше четвертой. Кроме того, в
некоторых случаях уравнение содержит коэффициенты, известные лишь приблизительно,
и, следовательно, сама задача о точном определении корней уравнения теряет
смысл. Для их решения используются итерационные методы с заданной
степенью точности.
Пусть
дано уравнение
где:
Условия
1) и 2) гарантируют, что на интервале [a, b] находится хотя бы один корень, а из 3) следует, что f(x) на данном интервале
монотонна и поэтому корень будет единственным.
Решить
уравнение итерационным методом значит установить, имеет ли оно корни, сколько
корней и найти значения корней с нужной точностью.
Всякое
значение
, обращающее
функцию f(x) в нуль, т.е.
такое, что
:
называется
корнем уравнения (1) или нулем функции f(x).
Задача
нахождения корня уравнения f(x)
= 0 итерационным методом состоит из двух этапов:
Процесс
отделения корней начинается с установления знаков функции f(x) в граничных x = a и x = b
точках области ее существования.
Пример 1.
Отделить корни уравнения:
|
f(x)
º x3 - 6х + 2 = 0. |
(1) |
Составим
приблизительную схему:
|
х |
- ¥ |
- 3 |
- 1 |
0 |
1 |
3 |
+ ¥ |
|
f(x) |
- |
- |
+ |
+ |
- |
+ |
+ |
Следовательно,
уравнение (1) имеет три действительных корня, лежащих в интервалах [-3, -1],
[0, 1] и [1, 3].
Приближенные
значения корней (начальные приближения) могут быть также известны из
физического смысла задачи, из решения аналогичной задачи при других исходных
данных, или могут быть найдены графическим способом.
В
инженерной практике распространен графический способ определения приближенных
корней.
Принимая
во внимание, что действительные корни уравнения - это точки пересечения графика
функции f(x) с осью
абсцисс, достаточно построить график функции f(x) и отметить точки пересечения f(x) с осью Ох, или отметить на оси
Ох отрезки, содержащие по одному корню. Построение графиков часто удается
сильно упростить, заменив уравнение равносильным ему уравнением:
|
|
(2) |
где
функции f1(x) и f2(x) - более простые, чем функция f(x). Тогда, построив графики функций у = f1(x) и у = f2(x),
искомые корни получим как абсциссы точек пересечения этих графиков.

Рисунок 1.
Пример 2.
Графически отделить корни уравнения (Рисунок 1):
|
x lg x = 1. |
(3) |
Уравнение
(3) удобно переписать в виде равенства:
lg x=
.
Отсюда
ясно, что корни уравнения (3) могут быть найдены как абсциссы точек пересечения
логарифмической кривой y = lg
x и гиперболы y =
. Построив
эти кривые, приближенно найдем единственный корень
уравнения
(3) или определим его содержащий отрезок [2, 3].
Итерационный
процесс состоит в последовательном уточнении начального приближения х0. Каждый такой шаг называется итерацией. В
результате итераций находится последовательность приближенных значений корня х1, х2, ..., хn. Если эти значения с увеличением числа
итераций n приближаются к истинному значению корня,
то говорят, что итерационный процесс сходится.
Ниже приведен текст программы (Maple) расчета примера с любыми коэффициентами и любой степенью точности методом половинного деления.
Задание коэффициентов
a:=1.1:b:=2.2:c:=-1.5:
Задание степени точности
n:=0.001:
Проверка существования корней
if b^2-4*a*c<0 then print(`Корней нет`);
else
Задание шага
h:=1:
Задание функции
f:=a*x^2+b*x+c;
Нахождение координат вершины параболы
x1:=evalf(-b/(2*a)):xb:=x1;f1:=evalf(a*x1^2+b*x1+c):x:=x1:
Проверка случая одного корня
if f1=0 then print(`Единственный корень х:`,x);fi;
Цикл расчета проверки точности результата
for i from 1 by 1 while(abs(f)>n) do
Условие одинакового знака значений функции в двух соседних точках
if (a*x1^2+b*x1+c)*(a*x^2+b*x+c)>0 then
Переход на следующую позицию
x1:=x:x:=x+h:
else
Уменьшение шага в 2 раза и возврат правой точки на полшага назад
h:=h/2:
x:=x-h:
fi:
Вывод результатов промежуточных расчетов
print(x);
od:
Вывод окончательного результата
x1:=x:
x2:=xb-(x-xb):
fi;
Точное решение
x:='x':
evalf(solve(f,x));
Построение графика
plot(f,x=x2-5..x1+5);
Для нахождения корня уравнения (1), принадлежащего отрезку [a, b], делим этот отрезок
пополам. Если f
= 0 , то x =
является
корнем уравнения. Если f
не равно
0 (что, практически, наиболее вероятно), то выбираем ту из половин
или
, на
концах которой функция f(x)
имеет противоположные знаки. Новый суженный отрезок [ а1, b1] снова делим пополам и
производим те же самые действия.
Метод половинного деления практически удобно применять для грубого
нахождения корня данного уравнения, метод прост и надежен, всегда сходится.
В данном методе процесс итераций состоит в том, что в
качестве приближений к корню уравнения принимаются значения
х1, х2, ..., хn точек пересечения
хорды АВ с осью абсцисс (Рисунок 2). Сначала запишем
уравнение хорды AB:
.
Для точки пересечения хорды AB с осью абсцисс (х = х1, y = 0) получим уравнение:
![]()
Пусть для определенности f'' (x) > 0 при а
х
b (случай f''
(x) < 0
сводится к нашему, если записать уравнение в виде - f(x) = 0).
Тогда кривая у = f(x)
будет выпукла вниз и, следовательно, расположена ниже своей хорды АВ.
Возможны два случая: 1) f(а) > 0
(Рисунок 2, а) и 2) f(b) < 0 (Рисунок 2, б).

Рисунок 2, а, б.
В первом случае конец а неподвижен
и последовательные приближения: x0 = b;
|
|
(4) |
образуют ограниченную монотонно убывающую последовательность,
причем
![]()
Во втором случае неподвижен конец b,
а последовательные приближения: x0 = а;
|
|
(5) |
образуют ограниченную монотонно возрастающую последовательность,
причем
![]()
Обобщая эти результаты, заключаем:
Итерационный процесс продолжается до тех пор, пока не будет
обнаружено, что
| xi
- xi - 1|<
e ,
где e - заданная предельная абсолютная погрешность.
Метод Ньютона
Отличие этого итерационного метода от предыдущего состоит в том,
что вместо хорды на каждом шаге проводится касательная к кривой y = f(x)
при x = хi и ищется точка пересечения касательной с осью
абсцисс (Рисунок 3). При этом не обязательно задавать отрезок [а, b], содержащий корень уравнения, достаточно найти лишь
некоторое начальное приближение корня x = х0.
Применяя метод Ньютона, следует руководствоваться следующим
правилом: в качестве исходной точки х0
выбирается тот конец интервала [а, b], которому
отвечает ордината того же знака, что и знак f'' (х).

Рисунок 3.
Уравнение касательной, проведенной к кривой y
= f(x) через
точку В0 с координатами х0
и f(х0), имеет вид:
![]()
Отсюда найдем следующее приближение корня х1 как
абсциссу точки пересечения касательной с осью Ох
(y = 0):
![]()
Аналогично могут быть найдены и следующие приближения как точки
пресечения с осью абсцисс касательных, проведенных в точках В1, В2 и так далее. Формула
для i +1 приближения имеет вид:
|
|
(6) |
Для окончания итерационного процесса может быть использовано или
условие | f(xi)| < e , или условие близости 2х
последовательных приближений | xi - xi - 1 | < e .
Итерационный процесс сходится если
f(х0) * f'' (х0)
> 0.
Метод простой итерации
Для использования метода итерации исходное нелинейное уравнение f(х) = 0 заменяется
равносильным уравнением
|
x = j(x). |
(7) |
Пусть известно начальное приближение корня х
= х0. Подставляя это значение в
правую часть уравнения (7), получим новое приближение:
|
х1 = j(х0). |
|
Далее, подставляя каждый раз новое
значение корня в (7), получаем последовательность значений:
|
|
(8) |
Геометрически метод итерации может быть пояснен следующим образом.
Построим на плоскости хОу графики функций у = х и у = j (х).
Каждый действительный корень
уравнения
(7) является абсциссой точки пересечения М кривой у = j (х)
с прямой у = х (Рисунок 5, а).

Рисунок
5.
Отправляясь от некоторой точки А0 [x0,
j (x0)],
строим ломаную А0В1А1В2А2...
(“лестница”), звенья которой попеременно параллельны оси Ох
и оси Оу, вершины А0, А1, А2, ...лежат
на кривой у=j (х),
а вершины В1, В2, В3, …,
- на прямой у = х. Общие абсциссы точек А1
и В1, А2 и В2, ...,
очевидно, представляют собой соответственно последовательные приближения х1,
х2, ... корня
.
Возможен также другой вид ломаной А0В1А1В2А2
... - “спираль” (Рисунок 5, б). Решение в
виде “лестницы” получается, если производная j'
(х) положительна, а решение в виде “спирали”,
если j' (х)
отрицательна.
На Рисунке 5, а, б кривая у = j (х)
в окрестности корня
- пологая,
то есть
<1, и
процесс итерации сходится. Однако, если рассмотреть
случай, где
>1, то
процесс итерации может быть расходящимся (Рисунок 6).

Рисунок
6.
Метод итерации
Пусть дана линейная система
(9)
Введя в рассмотрение матрицы 
, систему (9) коротко можно записать в виде матричного
уравнения Ах = b. Предполагая, что диагональные коэффициенты aij не равны 0 (i = 1, 2, …, n), разрешим
первое уравнение системы (9) относительно х1,
второе - относительно х2 и т. д. Тогда получим эквивалентную
систему
|
|
(14) |
где
при i не равно j
и a ij = 0 при
i = j
(i, j = 1, 2, …, n).
Введя матрицы
и
,
систему (14) можно записать в матричной форме
x = b + a x,
а любое (k + 1) приближение
вычисляется по формуле
|
x (k+1) = b + a
x (k). |
(15) |
Напишем формулы приближений в развернутом виде:
|
|
(16 ) |
Приведем достаточное условие сходимости метода итераций.
Теорема: Процесс итерации для приведенной линейной системы (18) сходится к
единственному ее решению, если какая-нибудь каноническая норма матрицы a меньше единицы, т.е.
для итерационного процесса (19) достаточное условие есть
|
|
(17) |
Метод Зейделя
Метод Зейделя представляет собой
некоторую модификацию метода итераций. Основная его идея заключается в том, что
при вычислении (k + 1)-го приближения
неизвестной xi учитываются уже
вычисленные ранее (k + 1)-е приближения
неизвестных x1, x2, …, xi
- 1.
Пусть получена эквивалентная система (18). Выберем произвольно
начальные приближения корней
. Далее,
предполагая, что k-ые приближения
корней
известны, согласно Зейделю будем строить (k +
1)-е приближения корней по формулам:
|
|
(18) |
Заметим, что указанные выше условия сходимости для простой
итерации остается верной для итерации по методу Зейделя. Обычно метод Зейделя
дает лучшую сходимость, чем метод простой итерации, но приводит к более
громоздким вычислениям.
В отличие от систем линейных уравнений для систем нелинейных
уравнений не известны прямые методы решения. Лишь в отдельных случаях систему
можно решить непосредственно. Например, для системы из двух уравнений иногда
удается выразить одно неизвестное через другое и таким образом свести задачу к
решению одного нелинейного уравнения относительно одного неизвестного. Поэтому
итерационные методы для нелинейных систем приобретают особую актуальность.
Метод Ньютона.
Рассмотрим нелинейную систему уравнений
|
|
(19) |
или в векторной форме
|
f (x)
= 0, |
(20) |
где
f
x ![]()
Для решения системы будем пользоваться методом последовательных
приближений.
Предположим, известно k-е приближение
x(k)
=
![]()
одного из изолированных корней x
=
векторного
уравнения (20). Тогда точный корень уравнения (20) можно представить в виде
|
х = x(k) + D x(k), |
(21) |
где D x(k) =
-
поправка (погрешность корня).
Подставляя выражение (21) в (20), будем иметь
|
f (x(k) + D x(k)) = 0. |
(22) |
Предполагая, что функция f
(x) непрерывно дифференцируема
в некоторой выпуклой области, содержащей x
и x(k),
разложим левую часть уравнения (22) по степеням малого вектора D x(k) , ограничиваясь линейными членами,
|
f
(x(k) + D x(k))
= f (x(k)) + f
‘ (x(k))
D x(k) = 0 |
(23) |
или, в развернутом виде,
|
|
(24) |
Из формул (23) и (24) вытекает, что под производной f '(x)
следует понимать матрицу Якоби системы функций f1, f2,
..., fn относительно переменных
x1, x2, ..., xn,
т. е.
f ' (x)
= W(x) =
,
или в краткой записи
f ' (x)
= W(x) =
(i, j = 1, 2, …, n).
Поэтому формула (24) может быть записана в следующем виде:
f (x(k) ) + W
(x(k)
) D x(k) = 0
Если
det W ( х ) =
, то D x(k) = - W -1(x(k))
f (x(k)).
Отсюда видно, что метод Ньютона решения системы (19) состоит в
построении итерационной последовательности:
|
x(k
+ 1)
= x(k)
- W -1(x(k))
f (x(k)) (k = 0,
1, 2, …). |
(25) |
Если все поправки становятся достаточно малыми, счет прекращается.
Иначе новые значения xi используются
как приближенные значения корней, и процесс повторяется до тех пор, пока не будет найдено решение или не станет ясно, что получить его
не удастся.
Задания:
1. Найти
методом половинного деления отличный от нуля корень трансцендентного уравнения
1. x2 - 5 sin х = 0;
2. sin х - 1/x = 0;
3. lg x - cos x = 0
с четырьмя знаками после запятой. Корни отделить графически.
2. Найти, используя метод хорд, действительный корень x уравнения
1.
x3 - 2 x2 + х - 3 = 0;
2.
x3 - 2 x2 + 3 х - 5 = 0;
3. x4 - 5x3 + 2 x2 - 10 х + 1 = 0
с точностью e = 10-4. Корни отделить аналитически.
3. Найти, используя метод Ньютона, действительный корень x уравнения
1.
x3 - 2 x2 + х - 3 = 0;
2.
x3 - 2 x2 + 3 х - 5 = 0;
3. x4 - 5x3 + 2 x2 - 10 х + 1 = 0
с точностью e = 10-4. Корни отделить аналитически.
4. Найти наибольший положительный корень x уравнения
1. x3 + х = 1000;
2. 4 x - 5 ln x = 5;
3. ex - 10 x = 0
с точностью e = 10-4, используя метод итераций. Корни отделить графически.
5. Систему 
привести к виду, годному для применения метода итерации.
6. Решить систему
1. 
2. 
методом итерации.
7. Методом Зейделя решить систему уравнений

8. Приближенно найти
положительные решения системы нелинейных уравнений методом Ньютона
![]()